筆者今天沒那麼疲憊了,是活力星期一!內容雖然看起來和機器學習沒有關係,但是會和之後實作有關,雖然筆者也不確定會不會有實作就是了。今天最後會有一些小小的實作,是我熟悉語法小小題目(對我其實也不是很會),非常簡單,希望大家可以一起跟進!
是不是感覺前置準備有些多了呢?
但森導遊想先帶大家做好行前準備
不想在後面進入村子後
在衝衝忙忙跟不知道的人解釋
那接下來就進入今天的課程吧!
在前面的天數中我們一起安裝了Anaconda
它會預先幫我們安裝一些常用的庫
包括今天要說的 NumPy 、 Pandas 和 Matplotlib
所以當我們用 Jupyter Notebook 的時後
它會自動用 Anaconda 環境中的這些庫
但在以後會有的情況下,需要確保特定版本的庫或需要在其他環境中使用這些庫,最好要自行使用 conda install (使用 Anaconda)或 pip install (直接用命令提示字元)來安裝。
一般來說,有些人會創建一個虛擬環境來安裝這些庫
但這邊就不多做說明
安裝特定版本的方式
再命令提示字元上打指令
pip install numpy == x.y.z #numpy的安裝
pip install pandas == x.y.z #pandas的安裝
pip install matplotlib == x.y.z #matplotlib的安裝
這邊的x.y.z就是要安裝的特定版本
而 conda 指令是打在 Anaconda prompt 上面
指令可以看 Anaconda numpy 、Anaconda pandas、 Anaconda matplotlib
NumPy 是 Python 的一個擴充程式庫。支援高階大規模的多維陣列與矩陣運算,此外也針對陣列運算提供大量的數學函數函式庫。
這邊放一些 Numpy 用法
import numpy as np
# 一維陣列
np.array([1, 2, 3], dtype = int)
arr = np.array([1, 2, 3])
# dtype 後是放數值格式 int、float、complex
#不放會自動判斷
# 二維陣列
np.array([[1, 2, 3], [4, 5, 6]], dtype = int)
# 全為 0 或 1 的陣列(一樣可以放 dtype)
np.zeros(3) #建立全是 0 的一維陣列
np.ones((3, 3)) #建立全是 1 的二維陣列
# 等差數列
np.arange(0, 10, 2) # 從 0 到 10 ,差為 2
np.linspace(0, 10, 5) # 從 0 到 10 ,平分為 5 等分
# 隨機陣列
np.random.random(2, 2)
np.random.ranf(2, 2)
np.random.sample(2, 2)
# 0 到 1 之間的隨機數
np.random.normal(loc, scale, size)
# loc: 平均值 scale: 標準差 size: 陣列大小
random.randint(low, high, size)
# low: 最小值 high: 最大值 size: 陣列大小
# 假設題目陣列為
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 陣列的維度數量(輸出為 3)
arr.ndim
# 陣列的元素數量(輸出為 6)
arr.size
# 陣列的形狀(輸出為(2, 3))
arr.shape
# 陣列的長度(輸出會是列數,為 2)
len(arr) # 假設 arr 是一維陣列 arr([1, 2, 3]),輸出為元素數量 3
# 下面中括號裡是第幾列,輸出為列裡面的元素數量,為 3)
len(arr[0])
# 索引
element = arr1[0]
# 切片
arr[1, 3] # 陣列第 1 列第 3 行位置的元素
arr[:, 3] # 陣列第 3 行的元素
arr[1, :] # 陣列第 1 列的元素
arr[r1:r2, c1:c2]
# r1:r2 取 r1 到 r2 列
# c1:c2 取 c1 到 c2 行
# :N 從 0 到 N - 1
# 最小值和最大值
np.min(arr)
np.max(arr)
# 平均值、中位數、標準差
np.mean(arr)
np.median(arr)
np.std(arr)
# 將陣列中所有元素的值調整到一個特定的範圍
np.clip(0, 5) # 只留下在 0 到 5 區間的元素
# 回傳陣列當中符合條件的元素索引值(位置)
np.where(arr > 2) # 放陣列和條件
上面這邊都可以自己試試看結果會怎麼樣喔~
1.建一個 5 x 5 的 NumPy 整數陣列
2.計算上面陣列的平均值、最小值和最大值
3.建一個大小為 10 的一維零陣列,但第 5 個元素設為 1
4.建一個大小為 10 的一維陣列,但所有奇數位置的元素設為 0
今天的部分就到這裡
Pandas 和 Matplotlib 可能明天一起來或者分兩天
由於明天是可悲的早八
今天就不多說了~
各位明天見!
https://zh.wikipedia.org/zh-tw/NumPy
https://hackmd.io/@yizhewang/BytGou11E?type=view
https://dysonma.github.io/2020/10/29/Numpy%E5%B8%B8%E7%94%A8%E8%AA%9E%E6%B3%95%E6%95%B4%E7%90%86/